Data storage systems can include two storage processors for handling the data processing and caching operations of the storage system. The two storage processors enable the system to perform up to twice as much work in parallel than a single processor and enable the system to be cache-enabled. Write data that is processed by the storage processors is eventually written to disk drives in the disk drive array. However, because the process of writing data to a disk drive takes much longer than the amount of time required by the storage processor to process incoming data, the data is stored in cache memory before it is finally written to the disk drive. This type of data is called write cache data because it is in the process of being written to the disk drive, but has not yet been written to the disk drive.
Both storage processors process data read and write commands for the system concurrently. In order to prevent a loss of all write cache data stored in the cache memory associated with a particular processor in the event that the particular processor becomes unavailable or fails, the write cache data is stored in the cache memories associated with both storage processors through a mechanism called mirroring. Data mirroring involves providing an exact copy of all data on each storage processor's cache memory to the cache memory of the other storage processor. This is done so that, at any point in time, the cache memories associated with each storage processor are exactly the same. In the event that one of the storage processors should fail, none of its write cache data is lost, because it has been stored on the “peer” storage processor with which the failed storage processor cooperates.
However, when one of the pair of storage processors fails, the remaining operative storage processor can no longer write cache data, because it has lost the mirror cache memory associated with the failed storage processor. Furthermore, if the operative storage processor were to fail, any write cache data that it has stored locally would be lost. Therefore, in order to minimize or prevent the loss of data, the operative storage processor must write all write data that it processes to the disk drive array as the storage processor processes the data. The loss of a storage processor coupled with the inability of the remaining processor to cache the data severely impairs the operation of the system.